using System;
using Microsoft.SPOT;

namespace Gadgeteer.Interfaces.Network
{
    public interface INetworkInterface
    {
        string[] DnsAddresses { get; }
        string GatewayAddress { get; }
        string IPAddress { get; }
        bool IsDhcpEnabled { get; }
        bool IsDynamicDnsEnabled { get; }
        NetworkInterfaceType NetworkInterfaceType { get; }
        byte[] PhysicalAddress { get; set; }
        string SubnetMask { get; }

        void EnableDhcp();
        void EnableDynamicDns();
        void EnableStaticDns(string[] dnsAddresses);
        void EnableStaticIP(string ipAddress, string subnetMask, string gatewayAddress);
        void ReleaseDhcpLease();
        void RenewDhcpLease();
    }
}
